package com.naiterui.ehp.bs.agent.websocket;

import com.naiterui.ehp.bp.constants.CommonConstant;

/**
 * 经纪人ws消息API
 * 提供业务层引入，处理ws消息推送使用
 * <p>
 * 忽略用户在线、离线等复杂逻辑，仅实现在线可推送
 *
 * @author gaoliangliang
 * @since 2022/2/22
 */
public interface WebsocketConstant {


    /**
     * websocket心跳间隔
     */
    long HEART_BEAT_RATE = 30 * 1000;

    /**
     * websocket心跳信号
     */
    String HEART_BEAT_SIGNAL = "ping";

    /**
     * websocket连接HOST key
     */
    String WEBSOCKET_HOST_CONFIGKEY = "websocket_url";

    /**
     * 全量消息推送用户标识
     */
    String ALL_USER = "all";

    /**
     * 默认系统用户
     */
    String SYSTEM_USER = "system";

    /**
     * 经纪人，消息推送Redis发布订阅主题
     */
    String AGENT_MESSAGE_QUEUE = CommonConstant.REDIS_PRE_AGENT + "message_queue";

    /**
     * 经纪人，持久化推送消息临时队列名
     */
    static String persistentQueue(String userId) {
        return CommonConstant.REDIS_PRE_AGENT + "message_queue_" + userId;
    }
}
